개체-관계 모델
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
개체-관계 모델(ER 모델)은 현실 세계를 개체와 관계의 관점에서 표현하는 데이터 모델링 기법이다. 1976년 피터 첸에 의해 처음 소개되었으며, 정보 시스템의 요구사항 분석, 데이터베이스 설계에 널리 사용된다. ER 모델은 개체(Entity), 관계(Relationship), 속성(Attribute) 등의 구성 요소를 사용하여 현실 세계의 정보를 구조화하며, ER 다이어그램(ERD)을 통해 시각적으로 표현된다. 첸 표기법, 크로우즈 풋 표기법 등 다양한 표기법이 존재하며, ER 모델링 도구를 통해 효율적인 데이터 모델링을 지원한다. ER 모델은 관계형 데이터베이스에 적합하며, 반구조 데이터, 시계열 데이터, 다차원 데이터베이스 등에는 한계가 있다. 확장된 개체-관계 모델(EER 모델)은 ER 모델의 한계를 보완하며, 한국 정보 시스템 환경에서도 중요한 역할을 수행한다.
더 읽어볼만한 페이지
- 데이터베이스 모델 - 플랫 파일 데이터베이스
플랫 파일 데이터베이스는 각 줄에 레코드를 기록하고 구분자로 필드를 구분하는 단순한 형태이지만, 데이터 중복, 대용량 처리의 어려움, 보안 취약성 등의 한계로 특정 용도로만 활용된다. - 데이터베이스 모델 - 네트워크 모델
네트워크 모델은 찰스 바크만이 발명하고 CODASYL 컨소시엄에 의해 표준 사양으로 개발된 데이터베이스 모델이며, 바흐만 다이어그램으로 표현되고 IDS, IDMS, IMAGE 등 다양한 시스템에서 구현되었다. - 모델링 언어 - 차트
차트는 통계 데이터를 점, 선, 도형 등으로 묘사하여 데이터의 규칙성, 경향 등을 시각적으로 제시하고 분석 방향을 제시하는 도표이며, 히스토그램, 막대그래프, 원그래프, 선 그래프 등이 흔히 사용된다. - 모델링 언어 - 순서도
순서도는 컴퓨터 알고리즘이나 프로세스를 시각적으로 표현하는 도구로, 흐름 공정 차트에서 기원하여 컴퓨터 프로그래밍 분야에서 알고리즘을 설명하는 데 사용되며, 다양한 종류와 소프트웨어 도구가 존재한다. - 데이터 모델링 언어 - 임베디드 SQL
임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다. - 데이터 모델링 언어 - 데이터 정의 언어
데이터 정의 언어(DDL)는 SQL에서 테이블, 열, 데이터 형식 등을 정의하고 데이터베이스 스키마를 수정하는 데 사용되는 명령어 집합이며, `CREATE`, `DROP`, `ALTER`, `TRUNCATE` 등의 명령어를 포함하고 데이터 구조를 정의하는 다양한 형식 언어들을 포괄하는 의미로도 사용된다.
개체-관계 모델 | |
---|---|
개요 | |
유형 | 다이어그램 |
개발자 | 피터 첸 |
개발일 | 1976년 |
설명 | |
목적 | 데이터 모델링 |
특징 | 데이터베이스 설계를 위한 개념적 데이터 모델 |
구성 요소 | |
주요 요소 | 개체 (Entity) 관계 (Relationship) 속성 (Attribute) |
개체 | 독립적인 존재 사물 또는 개념 |
관계 | 개체 간의 연결 관계 유형 (1:1, 1:N, N:M) |
속성 | 개체의 특성 데이터 유형 (예: 텍스트, 숫자, 날짜) |
표기법 | |
일반적인 표기법 | 까마귀 발 (Crow's Foot) 표기법 Chen 표기법 |
Chen 표기법 | 개체를 직사각형으로 표현 속성을 타원으로 표현 관계를 다이아몬드로 표현 |
활용 | |
주요 활용 분야 | 데이터베이스 설계 정보 시스템 모델링 |
장점 | 이해하기 쉬운 시각적 표현 데이터 구조의 명확한 정의 |
단점 | 복잡한 시스템 표현의 어려움 |
예시 | |
예시 설명 | "고객" 개체와 "주문" 개체 간의 관계 표현 |
관련 개념 | |
관련 개념 | UML (Unified Modeling Language) 데이터 모델링 데이터베이스 설계 |
2. 역사
피터 첸은 1976년에 개체-관계(ER) 모델을 처음 제안한 이후, 여러 학자들이 이를 발전시켜왔다.[1] ER 모델은 데이터베이스 설계의 초기 단계에서 널리 사용되었으며, 정보 시스템 개발에 큰 영향을 미쳤다.
ER 모델은 원래 관계형 데이터베이스를 추상적으로 표현하기 위한 방법으로 고안되었다.[30] 데이터베이스에 저장될 정보와 그 정보 간의 관계를 표현하기 위해 사용된다.[31]
ER 모델은 3계층 스키마를 사용하는 소프트웨어 개발에도 사용되는데, 각 계층에 해당하는 ER 모델이 구축된다.
- 개념 데이터 모델: 가장 개략적인 수준의 ER 모델로, 모델에 포함될 전체적인 범위를 설정한다. 조직에서 일반적으로 사용되는 주요 데이터 개체를 정의한다.
- 논리 데이터 모델: 개념 데이터 모델보다 더 자세하며, 주요 데이터 개체 외에 운영 및 트랜잭션 데이터 개체도 정의한다. 데이터 개체 간의 관계도 설정된다.
- 물리 데이터 모델: 논리 ER 모델을 바탕으로 개발되며, 데이터베이스로 구현될 수 있도록 충분한 세부 정보를 포함한다. 각 데이터베이스 관리 시스템에 따라 달라진다.
피터 첸의 초기 ER 모델과 ER 모델의 발전에 대한 상세한 내용은 각각 피터 첸의 초기 ER 모델 과 ER 모델의 발전 하위 섹션을 참조하라.
몇몇 다른 저자들 또한 첸의 연구를 지지했다.[16][17][18][19][20]
2. 1. 피터 첸의 초기 ER 모델
피터 첸은 1976년 발표한 논문 "개체-관계 모델 - 데이터의 통합된 관점을 향하여 (The Entity-Relationship Model - Toward a Unified View of Data)"에서 ER 모델의 기본 개념을 제시했다.[1] 첸은 현실 세계가 개체와 관계로 구성된다는 자연스러운 관점을 채택하여, 실세계에 대한 중요한 의미 정보를 모델에 통합하고자 했다.[28]첸은 그의 논문에서 데이터 구조 다이어그램은 레코드의 구성을 나타낼 뿐 개체와 관계를 정확하게 표현하지 못한다고 지적하며, 개체-관계 다이어그램을 레코드 모델링 기법과 명확하게 대조했다.[1]
ER 모델은 개체(Entity), 관계(Relationship), 속성(Attribute) 이라는 세 가지 주요 구성 요소로 이루어져 있다.
- 개체(Entity): 현실 세계에서 독립적으로 존재하는 대상을 의미하며, 사람, 장소, 사물, 사건 등이 개체가 될 수 있다. 예를 들어, '건물', '아파트' 등이 개체에 해당한다.
- 관계(Relationship): 개체 간의 연관성을 나타낸다. 예를 들어, '건물'과 '아파트'는 '나누다'라는 관계로 연결될 수 있다. 첸은 "하나의 건물은 0개 이상의 아파트로 나눌 수 있지만, 하나의 아파트는 하나의 건물에만 위치할 수 있다"는 문장으로 관계를 표현했다.
- 속성(Attribute): 개체나 관계의 특성을 나타낸다. 예를 들어, '건물' 개체는 '주소', '층수' 등의 속성을 가질 수 있다. 속성 중에는 개체를 식별하는 기본 키가 포함될 수 있다.
ER 모델은 ER 다이어그램이라는 그림으로 표현된다. ER 다이어그램은 개체를 나타내는 상자와 개체 간의 관계를 나타내는 선으로 구성된다.
2. 2. ER 모델의 발전
1976년에 피터 첸이 ER 모델을 처음 제안한 이후, 다양한 확장과 변형이 이루어졌다.[35] ER 다이어그램 표기법에는 여러 가지가 있는데, 대표적으로 크로우즈 풋(Crow's Foot) 표기법과 바커(Barker) 표기법 등이 있다.ER 모델은 통합 모델링 언어(UML)와도 관련이 있다. UML은 소프트웨어 시스템을 모델링하는 데 사용되는 표준 언어인데, UML의 클래스 다이어그램은 ER 다이어그램과 유사한 측면이 있다.
3. 구성 요소
개체-관계 모델(ER 모델)은 정보 시스템 설계를 위한 핵심 구성 요소로, 개체(Entity), 관계(Relationship), 속성(Attribute)으로 구성된다.
- 개체: 분리된 물체 하나를 나타내며, 명사에 해당한다. 예를 들어, 컴퓨터, 사람, 악곡 등이 있다.
- 관계: 두 개 이상의 개체들이 어떻게 서로 연관되어 있는지를 나타낸다. 예를 들어, 회사와 컴퓨터는 "소유하다"라는 관계를 가진다.
- 속성: 개체나 관계의 성질을 나타낸다. 예를 들어, '직원' 개체는 '사회 보장 번호(SSN)' 속성을 가질 수 있다.
ER 모델은 일반적으로 데이터베이스, 특히 관계형 데이터베이스를 추상적으로 표현하는 데 사용된다.[30] ER 모델은 3계층 스키마를 사용하는 소프트웨어 개발에 사용될 경우, 각 계층(개념, 논리, 물리)에 해당하는 모델이 구축된다. 정보 시스템 설계의 첫 단계(요구 사항 분석)에서 ER 모델을 사용하여 필요한 정보를 추출하고, 그 정보를 데이터베이스에 저장할 때의 형식을 결정한다.
3. 1. 개체 (Entity)
개체(엔티티)는 분리된 물체 하나를 나타내며, 명사 하나에 해당한다고 생각하면 이해하기 쉽다. 예를 들어, 컴퓨터(1개), 사람(1명), 악곡(1개), 수학적 정리(1개) 등이 개체에 해당한다.개체는 강한 개체와 약한 개체로 나눌 수 있다.
- 강한 개체: 일반적인 개체를 가리키며, 개체가 가진 속성들만으로 고유하게 정의될 수 있다. 예를 들어, '고객' 개체는 '고객번호', '이름', '주소' 등의 속성으로 고유하게 식별될 수 있다.
- 약한 개체: 개체가 가진 속성들만으로는 고유하게 정의될 수 없는 개체를 말한다. 따라서 하나 이상의 관계를 개체의 기본 키로 삼아야 한다. 예를 들어, '주문' 개체는 '주문번호' 속성만으로는 동일한 주문번호가 존재할 수 있으므로 고유하게 식별할 수 없다. 따라서 '고객' 개체와의 관계를 통해 '어떤 고객의 몇 번 주문'과 같이 식별해야 한다.
한국적 맥락에서 개체의 예시는 다음과 같다.
- 고객
- 상품
- 주문
- 회원
- 게시글
- 댓글
- 배송
- 결제
3. 2. 관계 (Relationship)
관계(Relationship)는 개체들이 서로 어떻게 연관되어 있는지를 나타낸다. 예를 들어 회사와 컴퓨터는 "소유하다"라는 관계로, 상사와 부하 직원은 "감독하다"라는 관계로 연결될 수 있다.[31] 관계는 다이아몬드형으로 표시하며, 관련된 개체와는 실선으로 연결한다.[7][8][9]관계는 동사처럼 생각할 수 있으며,[35] 명사인 두 개 이상의 개체를 연결한다. 예를 들어 "소유", "감독", "연주" 등이 있다.

관계도 개체처럼 애트리뷰트를 가질 수 있다. 예를 들어 "증명했다" 관계는 "날짜" 애트리뷰트를 가질 수 있다.[32]
개체-관계 다이어그램(ERD)은 개별 관계 인스턴스가 아닌 "관계 집합"을 보여준다. 예를 들어 아이와 점심 도시락 간의 "먹어치움" 관계는 하나의 관계이고, 데이터베이스 안의 모든 그러한 아이-점심 도시락 관계는 관계 집합이다.[30]
단일 테이블의 행 사이 관계는 단방향 관계(Unary Relationships)를 사용하여 기술할 수 있다.
3. 2. 1. 관계의 종류
관계는 둘 이상의 엔티티들이 서로 어떻게 관련되어 있는지를 나타낸다. 예를 들어, 회사와 컴퓨터는 "소유하다"라는 관계로, 상사와 부하 직원은 "감독하다"라는 관계로 연결될 수 있다. 이러한 관계는 다이아몬드 형태로 표현되며, 관련된 엔티티들과 실선으로 연결된다.관계의 종류는 다음과 같이 세 가지 주요 유형으로 나눌 수 있다.
관계 종류 | 설명 | 한국적 맥락에서의 예시 | 다이어그램 표기법 |
---|---|---|---|
일대일 (1:1) | 한 엔티티가 다른 엔티티 하나와 연결되는 관계. | -- | |
일대다 (1:N) | 한 엔티티가 여러 개의 다른 엔티티와 연결될 수 있는 관계. | ||
다대다 (N:M) | 여러 엔티티가 다른 여러 엔티티와 연결될 수 있는 관계. |
이러한 관계들은 데이터 모델링에서 중요한 역할을 하며, 데이터베이스 설계의 기반이 된다. 관계의 종류를 올바르게 파악하는 것은 데이터의 정확성과 효율성을 보장하는 데 필수적이다.
3. 2. 2. 관계의 제약 조건
관계는 둘 이상의 엔티티들이 어떻게 서로 관련되어 있는지 나타낸다. 관계는 다이아몬드 형태로 표현되며, 관련된 엔티티들과 실선으로 연결된다.[7][8][9]엔티티 집합과 관계 집합을 연결하는 실선은 관계에 참여하는 엔티티의 제약 조건을 나타낸다.
- 참여 제약 조건 (Participation Constraint)
- 전체 참여 (Total Participation): 엔티티 집합의 모든 엔티티가 관계 집합의 *최소한 하나의* 관계에 참여해야 하는 경우, 굵은 실선이나 이중선으로 표시한다.
- 부분 참여 (Partial Participation): 엔티티 집합의 일부 엔티티만 관계에 참여해도 되는 경우는 일반 실선으로 표시한다.
- 카디널리티 (Cardinality)
- 일대일 (1:1): 엔티티 집합의 각 엔티티가 관계 집합의 *최대 하나의* 관계에 참여할 수 있는 경우, 엔티티 집합에서 관계 집합으로 화살표를 그려 표시한다.
- 일대다 (1:N): 한 엔티티 집합의 엔티티는 관계 집합의 여러 관계에 참여할 수 있지만, 다른 엔티티 집합의 엔티티는 최대 하나의 관계에만 참여할 수 있다.
- 다대다 (N:M): 양쪽 엔티티 집합의 엔티티들이 관계 집합의 여러 관계에 참여할 수 있다. 어소시에이티브 엔티티를 사용하여 다대다 관계를 표현할 수 있다.
- 키 제약 조건 (Key Constraint)
- 엔티티 집합의 각 엔티티가 관계 집합의 *최대 하나의* 관계에 참여할 수 있음을 나타낸다. 엔티티 집합에서 관계 집합 쪽으로 화살표를 그려 표시한다.
- 엔티티 집합의 모든 엔티티가 각각 *정확히 하나의* 관계에 참여하는 경우 굵은 화살표로 표시한다.

3. 3. 속성 (Attribute)
개체-관계 모델에서 속성(Attribute)은 개체나 관계의 성질을 나타낸다. 예를 들어, '직원' 개체는 '사회 보장 번호(SSN)' 속성을 가질 수 있고, '증명했다' 관계는 '날짜' 속성을 가질 수 있다.[34] 속성은 엔티티 집합이나 관계 집합에 선으로 연결된 타원형으로 표현된다.속성은 다음과 같이 분류될 수 있다.
- 단일 값 속성 vs 다중 값 속성:
- 단일 값 속성: 대부분의 속성은 특정 엔티티에 대해 하나의 값만 가진다. 예를 들어, '학생' 엔티티의 '학번'은 단일 값 속성이다.
- 다중 값 속성: 어떤 속성은 특정 엔티티에 대해 여러 개의 값을 가질 수 있다. 예를 들어, '소프트웨어' 엔티티의 '플랫폼' 속성은 여러 개의 값을 가질 수 있으며, 이중선으로 둘러싸인 타원으로 표현된다.
- 복합 속성: 복합 속성은 여러 개의 독립적인 하위 속성으로 구성된다. 예를 들어, '주소'는 '번지', '도시' 등의 하위 속성으로 구성되는 복합 속성이다.
- 유도 속성: 유도 속성은 다른 속성이나 데이터베이스의 다른 정보로부터 계산되거나 파생될 수 있는 값이다. 예를 들어, '피고용인'의 '나이' 속성은 '생년월일' 속성으로부터 유도될 수 있으며, 점선으로 그린 타원형으로 표시된다.
한국적 맥락에서 속성의 예시로는 이름, 주민등록번호, 주소, 연락처, 이메일 등이 있다.
3. 3. 1. 속성의 종류
개체-관계 모델에서 속성은 엔티티나 관계가 가진 성질을 나타낸다. 속성은 타원으로 그려지고, 해당 속성을 갖는 엔티티나 관계 집합에 선으로 연결된다.

속성은 다음과 같이 분류할 수 있다.
- 단일 값 속성 vs 다중 값 속성:
- 단일 값 속성: 대부분의 속성은 특정 엔티티에 대해 하나의 값만 갖는다. 예를 들어, 학생 엔티티의 '학번' 속성은 단일 값을 갖는다.
- 다중 값 속성: 어떤 속성은 특정 엔티티에 대해 여러 개의 값을 가질 수 있다. 예를 들어, 학생 엔티티의 '수강 과목' 속성은 여러 개의 값을 가질 수 있다.
- 복합 속성: 복합 속성은 여러 개의 독립적인 하위 속성으로 구성된다. 예를 들어, '주소' 속성은 '시', '도', '우편번호' 등의 하위 속성으로 구성될 수 있다.
- 유도 속성: 유도 속성은 다른 속성이나 데이터베이스의 다른 정보로부터 계산되거나 파생될 수 있는 값이다. 예를 들어, '나이' 속성은 '생년월일' 속성으로부터 유도될 수 있다.
속성의 밑줄 친 이름은 키임을 나타낸다. 이 속성이 있는 서로 다른 두 엔티티 또는 관계는 이 속성에 대해 항상 다른 값을 갖는다.
3. 3. 2. 기본 키 (Primary Key)
기본 키는 속성의 밑줄 친 이름으로 표현되며,[11] 이 속성을 가진 서로 다른 두 엔티티 또는 관계는 이 속성에 대해 항상 다른 값을 갖는다.모든 실체는 (약한 실체가 아닌 한) 고유하게 식별 가능한 최소한의 속성 집합을 가져야 하며, 이 속성 집합을 실체의 기본 키라고 부른다.[34]

4. ER 다이어그램 (ERD)
ER 다이어그램(ERD)은 데이터베이스를 추상적으로 표현하는 방법 중 하나로, 개체-관계 모델을 시각적으로 나타낸 것이다. ER 모델은 표에 데이터를 저장하는 관계형 데이터베이스에서 특히 유용하다. 표 안의 데이터가 다른 표의 데이터를 가리키는 경우, ER 모델에서는 이를 "관계"로 표현한다. 예를 들어, 개인 정보 데이터베이스에서 한 개인의 정보(엔티티)가 여러 전화번호 정보(엔티티)를 가리키는 경우, 이들 사이에 "전화번호를 가진다"라는 관계가 존재한다고 본다.
ER 다이어그램은 이러한 개체, 관계, 속성 등을 그림으로 나타낸 것이다. ER 모델은 3계층 스키마를 사용하는 소프트웨어 개발에서 각 계층에 해당하는 모델을 구축하는 데 사용될 수 있다.
- 개념적 데이터 모델: 가장 개략적인 수준의 ER 모델로, 조직에서 사용하는 주요 데이터 개체를 정의한다.
- 논리적 데이터 모델: 개념적 모델보다 더 자세하며, 운영 및 업무 데이터 개체도 포함한다.
- 물리적 데이터 모델: 데이터베이스로 직접 구현될 수 있도록 충분히 상세하며, 특정 데이터베이스 관리 시스템에 종속적이다.
정보 시스템 설계의 첫 단계에서 ER 모델은 정보 요구 사항을 파악하고 데이터베이스에 저장될 정보 유형을 결정하는 데 사용된다. ER 다이어그램은 첸 표기법, 크로우즈 풋 표기법, 바커 표기법 등 다양한 표기법으로 표현될 수 있다.
4. 1. 첸 (Chen) 표기법

개체(엔티티)는 분리된 물체 하나를 표현하며, 명사 하나에 해당한다고 생각하면 쉽다. 예를 들어, 컴퓨터(1개), 사람(1명), 악곡(1개), 수학적 정리(1개) 등이 있다. 엔티티는 사각형으로 표시된다.
관계(릴레이션쉽)는 두 개 이상의 엔티티들이 어떻게 서로 연관되어 있는지를 나타낸다. 예를 들어, 회사와 컴퓨터 사이의 "소유하다" 관계, 상사와 부하 직원 사이의 "감독하다" 관계 등이 있다. 관계는 다이아몬드형으로 그리며, 관계된 엔티티와는 실선으로 연결한다.
엔티티와 관계는 모두 애트리뷰트(속성)를 가질 수 있다. 예를 들어, 'employee' 엔티티는 생년월일(SSN) 애트리뷰트를 가질 수 있고, "proved" 관계는 "날짜(date)" 애트리뷰트를 가질 수 있다. 애트리뷰트는 엔티티 집합이나 관계 집합에 선으로 연결된 타원형으로 표현한다.
위크 엔티티가 아닌 모든 엔티티는 고유하게 식별되는 애트리뷰트 집합을 가지고 있어야 한다. 이러한 최소한의 고유 식별 애트리뷰트 집합을 엔티티의 기본 키(Primary Key)라고 한다.
개체-관계 다이어그램은 하나의 엔티티나 관계 인스턴스를 보여주는 것이 아니다. 사각형은 "엔티티 집합들"을, 다이아몬드형은 "관계 집합들"을 나타낸다. 예를 들어, 특정 악곡은 하나의 엔티티이고, 데이터베이스 안의 모든 악곡들의 모음은 하나의 엔티티 집합이다.
엔티티 집합과 관계 집합 사이에는 실선을 그린다. 엔티티 집합의 모든 엔티티가 관계에 참여하고 있을 때는 선을 굵게 그리거나 이중선으로 그리는데, 이를 파티시페이션 콘스트레인트라고 부른다. 엔티티 집합 내의 각 엔티티가 관계 집합 내의 최대 한 개의 관계에 참여할 수 있을 때는 엔티티 집합에서 관계 집합 쪽으로 화살표를 그려주는데, 이를 키 콘스트레인트라고 부른다. 엔티티 집합 내의 모든 엔티티가 각각 하나씩의 관계에 정확히 대응될 때는 화살표를 굵게 그린다.
어소시에이티브 엔티티는 다대다(many-to-many) 관계를 기술할 때 사용될 수 있다. 단일 테이블의 행 사이의 관계를 기술하기 위해 단방향 관계(Unary Relationships)를 사용할 수도 있다.
피터 첸(Peter Chen)은 ER 모델링의 아버지라고 불리며, 그의 획기적인 논문에서 다음과 같이 말했다.[1]
: "''개체-관계 모델은 현실 세계가 개체와 관계의 관점에서 구성된다는 보다 자연스러운 관점을 채택합니다. 이 모델은 현실 세계에 대한 중요한 의미론적 정보를 통합합니다.''"
첸은 1976년 원본 논문에서 개체-관계 다이어그램을 레코드 모델링 기법과 명확하게 대조했다.[1]
:"''데이터 구조 다이어그램은 레코드의 구성을 나타낸 것이며, 개체와 관계를 정확하게 표현하는 것은 아닙니다.''"
몇몇 다른 저자들 또한 첸의 연구를 지지했다.[16][17][18][19][20]
4. 2. 크로우즈 풋 (Crow's Foot) 표기법
크로우즈 풋(Crow's Foot영어) 표기법은 엔티티 사이의 관계를 기본적으로 엔티티를 연결하는 선으로 나타낸다. 또한 관계의 카디널리티를 나타내는 기호들을 그 선의 양끝에 표시한다.카디널리티를 나타내는 기호는 다음과 같다.
기호 | 의미 |
---|---|
"고리"(ring) | "0" |
"실선"(dash) | "1" |
"까마귀 발"(crow's foot) | "다수" 혹은 "그 이상" |
위 기호들은 서로 조합하여 사용될 수 있으며, 가능한 조합은 다음과 같다.
조합 | 의미 |
---|---|
고리와 실선 | 0 혹은 1 |
실선과 실선 | 정확히 1 |
고리와 까마귀 발 | 0개 이상 |
실선과 까마귀 발 | 1개 이상 |
오른쪽 그림은 크로우즈 풋 표기법의 예시를 보여준다.
그림에서 알 수 있는 사실은 다음과 같다.
- 음악가(Artist)는 "0개 혹은 그 이상의" 노래(song)를 부른다.
- 노래 한 곡은 정확히 한 음악가(artist)에 의해 불린다. (주의: 실제 세계를 잘 반영하지 못하는 예제이다. 노래 한 곡을 듀엣으로 부를 수도 있는 것이다.)
크로우즈 풋 표기법은 오라클 데이터베이스 텍스트에서 널리 쓰이고 있다. 또한 마이크로소프트 비지오, 파워디자이너, 다이어 (소프트웨어) 등의 틀에서 쓰이고 있다.
크로우즈 풋 표기법의 장점은 다음과 같다.
- 다수(many) 관계를 명확하게 표현할 수 있다.
- 필수적인 관계나 선택적인 관계를 간결하게 표현할 수 있다. (수직선 또는 고리(open circle) 사용)
4. 3. 바커 (Barker) 표기법
바커(Barker) 표기법은 엔티티 간의 관계를 기본적으로 엔티티를 연결하는 선으로 나타낸다. 또한 관계의 카디널리티를 나타내는 기호들을 그 선의 양끝에 표시한다.카디널리티를 나타내는 기호들은 다음과 같다.
- "고리"(ring)는 "0"을 나타낸다.
- "실선"(dash)은 "1"을 나타낸다.
- "까마귀 발"(crow's foot)은 "다수" 혹은 "그 이상"을 나타낸다.
위 기호들은 조합하여 사용되며, 가능한 조합은 다음과 같다.
- 고리와 실선 → 0 혹은 1
- 실선과 실선 → 정확히 1
- 고리와 까마귀 발 → 0개 이상
- 실선과 까마귀 발 → 1개 이상
위 그림은 크로우즈 핏 노테이션의 예시이다. 그림에서 다음 사실을 알 수 있다.
- 음악가(Artist)는 "0개 혹은 그 이상의" 노래(song)를 부른다.
- 노래 한 곡은 정확히 한 음악가(artist)에 의해 불린다. (실제 세계를 반영하지 못하는 예제로, 노래 한 곡을 듀엣으로 부를 수도 있다.)
크로우즈 핏 노테이션은 오라클 데이터베이스 텍스트에서 널리 쓰이고 있으며, 마이크로소프트 비지오, 파워디자이너, 다이어 (소프트웨어) 등의 틀에서도 사용된다.
5. ER 모델링 과정
ER 모델은 데이터베이스, 특히 관계형 데이터베이스를 추상적으로 표현하는 방법 중 하나이다. 관계형 데이터베이스는 표에 데이터를 저장하며, 표 안의 일부 데이터는 다른 표 안의 데이터를 가리키기도 한다. 예를 들어, 개인 정보 데이터베이스에서 어떤 개인의 정보는 여러 개의 전화번호 데이터를 가리킬 수 있다. ER 모델에서는 개인 정보를 하나의 "실체"[30], 전화번호를 또 다른 "실체"로 보며, 이 실체들 사이에 "전화번호를 가진다"라는 "관계"[31]가 있다고 표현한다. 이러한 실체나 관계를 설계할 때 만들어지는 그림이 실체 관계도(ER 다이어그램)이다.
3계층 스키마를 소프트웨어 개발에 사용하는 경우, 각 계층에 해당하는 ER 모델이 구축된다.
5. 1. 요구사항 분석
정보 시스템을 디자인할 때, 개체-관계 모델과 같은 모델들을 사용하여 시스템이 필요로 하는 정보를 기술하거나 데이터베이스에 저장되어야 할 정보의 유형을 분석할 수 있다. 특히 요구사항 단계에서 이러한 분석이 중요하다.데이터 모델링 기법은 관심 대상이 되는 영역(도메인 오브 디스코스)의 온톨로지를 기술하는 데 사용될 수 있다. 온톨로지는 사용된 용어(term)들과 그들 간의 관계를 정의하고 분류하는 것을 의미한다. 데이터베이스 기반 정보 시스템을 디자인할 때, 개념 데이터 모델은 논리 설계 단계에서 관계형 모델과 같은 논리적 데이터 모델로 변환된다. 이후 논리적 데이터 모델은 물리 설계 단계에서 물리적 디자인 모델로 다시 변환된다. 하지만 이 모든 단계를 통틀어 "물리 설계"라고 부르기도 한다.
5. 2. 개념적 설계
요구사항을 바탕으로 개체, 관계, 속성을 도출하고 개체-관계 다이어그램(ERD)을 작성하는 단계이다.ER 모델은 일반적으로 비즈니스 영역의 프로세스에서 생성되고 필요한 데이터를 정의하고 설명하기 위한 체계적인 분석의 결과로 나타난다. ER 모델은 보통 상자('개체')와 상자를 연결하는 선('관계')으로 그려져 개체 간의 연관성 및 종속성을 나타낸다. 예를 들어, '하나의 건물은 0개 이상의 아파트로 나눌 수 있지만, 하나의 아파트는 하나의 건물에만 위치할 수 있다.' 와 같이 언어적 형태로 표현 될 수 있다.[30]
개체는 관계뿐만 아니라 '속성'이라는 추가 속성으로 정의될 수 있으며, 여기에는 "기본 키"라고 하는 식별자가 포함된다. 속성과 개체 및 관계를 나타내기 위해 생성된 다이어그램은 개체-관계 모델 대신 개체-속성-관계 다이어그램이라고 할 수 있다.[31]
정보 시스템 설계의 첫 단계는 요구 사항 분석 중에 이러한 모델을 사용하여 정보 요구 사항 또는 데이터베이스에 저장할 정보 유형을 설명하는 것이다. 데이터 모델링 기술은 특정 관심 영역에 대한 모든 온톨로지 (즉, 사용된 용어와 해당 관계의 개요 및 분류)를 설명하는 데 사용할 수 있다. 데이터베이스를 기반으로 하는 정보 시스템 설계를 하는 경우, 개념 데이터 모델은 나중에 (일반적으로 논리적 설계라고 함) 관계형 모델과 같은 논리적 데이터 모델에 매핑된다. 이것은 다시 물리적 설계 중에 물리적 모델에 매핑된다.
개념 데이터 모델은 가장 개략적이지만, 모델 세트에 포함해야 할 전체적인 모습을 명확히 한다는 역할을 담당하는 가장 상위의 ER 모델이다. 개념 ER 모델은 일반적으로 조직이 사용하는 마스터 참조 데이터 실체를 정의한다. 조직 전체의 개념 ER 모델을 개발함으로써, 조직의 데이터 아키텍처 문서화에 도움이 된다. 개념 ER 모델은 하나 이상의 논리 데이터 모델의 기반으로 사용할 수 있으며, 논리 ER 모델 간의 마스터 데이터 실체의 구조적 메타데이터의 공통성을 확립하는 데 사용된다. 또한, 데이터 모델 통합의 기반으로 ER 모델 간의 공통성 확립에 사용되기도 한다.[30]
5. 3. 논리적 설계
개념적 데이터 모델을 특정 데이터베이스 관리 시스템(DBMS)에 맞게 변환하는 단계이다. 논리적 데이터 모델은 관계형 모델과 같은 것이며, 개념 데이터 모델보다 더 자세한 내용을 담고 있다. 마스터 데이터 개체 외에도 운영 및 트랜잭션 데이터 개체가 정의되며, 각 데이터 개체의 세부 정보와 이러한 데이터 개체 간의 관계가 설정된다. 그러나 논리적 ER 모델은 구현할 수 있는 특정 데이터베이스 관리 시스템과는 독립적으로 개발된다.ER 모델은 일반적으로 비즈니스 영역의 프로세스에서 생성되고 필요한 데이터를 정의하고 설명하기 위한 체계적인 분석의 결과로 나타나며, 다음과 같은 언어적 형태로 표현될 수 있다.
: '하나의 건물은 0개 이상의 아파트로 나눌 수 있지만, 하나의 아파트는 하나의 건물에만 위치할 수 있다.'[30]
ER 모델은 일반적으로 데이터베이스로 구현된다. 간단한 관계형 데이터베이스 구현에서 테이블의 각 행은 개체 유형의 인스턴스 하나를 나타내고 테이블의 각 필드는 속성 유형을 나타낸다. 관계형 데이터베이스에서 개체 간의 관계는 다른 개체의 테이블에서 한 개체의 기본 키를 포인터 또는 "외래 키"로 저장하여 구현된다.[31]
5. 4. 물리적 설계
논리적 데이터 모델을 바탕으로 실제 데이터베이스 스키마를 생성하는 단계이다. 물리적 데이터 모델은 데이터베이스에 실제로 어떻게 데이터가 저장될 지를 정의하며, 주요 역할은 다음과 같다.- 데이터베이스 객체로의 변환: 물리 데이터 모델은 일반적으로 데이터베이스 테이블, 고유 키 인덱스와 같은 데이터베이스 인덱스, 외래 키 제약 조건과 같은 데이터베이스 제약 조건 등 관계형 데이터베이스 객체의 형태로 변환된다.[30]
- 데이터베이스 관리 시스템(DBMS)에 맞춘 설계: 각 데이터베이스 관리 시스템은 서로 다른 특성을 가지므로, 물리적 ER 모델은 특정 DBMS에 종속적이다.[30]
- 수정 및 유지보수: ER 모델은 관계형 데이터베이스 객체의 수정을 설계하고 데이터베이스의 구조적 메타데이터를 유지 관리하는 데 사용된다.[30]
물리적 설계의 주요 요소는 다음과 같다.
- 테이블(Table): 관계형 데이터베이스에서 각 행은 개체 유형의 인스턴스 하나를, 각 필드는 속성 유형을 나타낸다.[30]
- 인덱스(Index): 기본 키 등의 색인을 포함한다.[30]
- 제약 조건: 외래 키 제약 조건 등을 포함한다.[30]
정보 시스템 설계의 첫 단계(요구 사항 분석)에서 ER 모델은 필요한 정보를 추출하고, 데이터베이스에 저장할 정보의 유형을 설명하는 데 사용된다.[31] 이후 개념 데이터 모델은 논리 데이터 모델로, 다시 물리적 설계 단계를 거쳐 물리적 모델로 변환된다.[31]
6. ER 모델링 도구
ER 모델링을 지원하는 다양한 도구들이 있다.
국내에서 개발된 상용 ERD 도구는 다음과 같다.
제품명 | 개발사 | 특징 |
---|---|---|
eXERD | (주)토마토시스템 | 논리/물리/통합 모델링 지원, 한글 메뉴 및 도움말, 다양한 편의 기능 제공 |
마이크로디자이너 | (주)인브레인 | IE 및 IDEF1X 표기법 지원, 공학/역공학, 모델 병합 기능 제공 |
DA# | (주)엔코아 | 데이터 모델링 기반 비즈니스 표현 |
이 외에도 다음과 같은 상용 ERD 도구가 있다.
- CA ERwin Data Modeler: HTML 리포트 생성 기능 제공.
- ER/Studio: 사용하기 쉬운 모델링 도구.
- 마이크로소프트 비지오: 엔터프라이즈 아키텍처 버전에서 여러 데이터베이스 및 역 엔지니어링 지원.
- ModelRight: 물리 모델링 도구.
- OmniGraffle: 맥 OS용 다이어그램 도구.
- Oracle Designer: 오라클 코포레이션의 컴퓨터-보조 소프트웨어 엔지니어링 도구. 정보 시스템 설계 및 생성 도구.
- PowerDesigner: 사이베이스의 모델링 도구. 개념, 논리, 물리, 리버스 엔지니어링 모델링 지원. 여러 RDBMS 브랜드 지원.
- Rational Rose: UML 다이어그램 작성 도구.
- SILVERRUN 모델스피어: 개념, 논리, 물리 데이터 모델링 지원. 다수의 타겟시스템 지원 인터페이스 제공.
- SmartDraw: 포인트 앤드 클릭 방식, 다양한 템플릿 제공.
- DBDesigner-Fork: DBDesigner 변종, PostgreSQL 등 다른 데이터베이스 시스템 지원.
오픈 소스 ERD 도구는 다음과 같다.
7. 한계 및 확장
ER 모델은 비즈니스 영역의 프로세스에서 생성되고 필요한 데이터를 정의하고 설명하기 위한 체계적인 분석 결과로 나타난다. ER 모델은 일반적으로 상자('개체')와 선('관계')으로 그려져 개체 간의 연관성 및 종속성을 나타내며, '속성', '기본 키' 등의 개념을 포함한다.[30][31]
ER 모델은 주로 데이터베이스로 구현되며, 관계형 데이터베이스에서는 테이블의 각 행은 개체 유형의 인스턴스를, 각 필드는 속성 유형을 나타낸다. 개체 간의 관계는 외래 키를 통해 구현된다.[30][31]
피터 첸은 ER 모델이 현실 세계를 개체와 관계로 구성한다는 자연스러운 관점을 채택한다고 언급했다.[28]
하지만 ER 모델은 관계형 데이터베이스에 적합하며, 시간에 따른 정보 변화를 표현하기 어렵다는 한계가 있다.[49]
이러한 한계를 보완하기 위해 확장된 실체 관계 모델(EER 모델)이 등장했다. EER 모델은 ER 모델에 위크 엔티티, 다치 애트리뷰트(multi-valued attribute) 등 몇 가지 개념을 추가하여 더 복잡한 데이터 구조를 표현한다.
7. 1. ER 모델의 한계
ER 모델은 다음과 같은 한계를 지닌다.- ER 모델은 주로 관계형 데이터베이스로 표현 가능한 정보를 다루는 데 적합하며, 관계형 모델로 표현되지 않는 정보(예: semi-structured data|반구조 데이터영어)를 다루는 것은 어렵다.[49]
- 대부분 시스템에 저장되는 정보가 시간에 따라 어떻게 변화하는지 명확하게 표현하기 어렵다. 이러한 변화를 표현하기 위해 ER 모델을 확장하려는 시도가 있었으며, 피터 첸(Peter Chen)도 이러한 방향성을 지지했다.[49] 앵커 모델링이 그 예시 중 하나이다. 다른 방법으로는 프로세스 모델링 기법을 사용하여 변화를 개별적으로 모델링하거나, UML와 같이 시스템의 다른 관점을 표현하는 추가 기법을 사용하는 것이다.
- ER 모델링은 처음부터 정보를 지정해 나가는 신규 시스템 설계나 독립형 정보 시스템에는 적합하지만, 기존 정보원과의 연계에는 큰 도움이 되지 않는다.
- ER 모델링은 주로 관계형 데이터베이스를 사용한 시스템에서 사용되며, 다른 시스템에서는 원리적으로 문제가 없더라도 잘 사용되지 않는다. 이는 관계형 데이터베이스를 직접 지원하는 툴이 많기 때문이다.
- Brodie and Liu[50]의 조사에 따르면, 포춘 100대 기업 중 10개사에서 ER 모델링을 사용한 예가 없었다. Badia and Lemire[51]는 그 원인이 지도 부족뿐만 아니라 데이터 통합 지원 등의 이점 부족도 있다고 보았다.
- 객체 지향 분석 설계와 밀접하게 관련된 개념을 도입한 enhanced entity–relationship model|확장된 실체 관계 모델영어(EER 모델링)이 ER 모델링에 결여된 몇 가지 개념을 도입하고 있다.
- temporal database|시제 데이터베이스영어 모델링에서는 ER 모델에 다양한 확장이 필요하다.[52] 또한, OLAP에서 사용되는 다차원 데이터베이스에도 적합하지 않다.[53]
7. 2. EER 모델
EER(Enhanced Entity-Relationship, 확장된 개체-관계) 모델은 기존 ER 모델에 몇 가지 개념을 추가하여 더 복잡한 데이터 구조를 표현할 수 있도록 확장한 모델이다.ER 모델에 추가된 개념은 다음과 같다:
- 위크 엔티티: 독자적으로 존재할 수 없고 다른 엔티티(strong entity)에 종속적인 엔티티를 말한다. 예를 들어, '업무 추적' 데이터베이스에서 '태스크'는 '사람' 엔티티에 종속적인 위크 엔티티가 될 수 있다. 위크 엔티티는 굵은 선이나 이중선으로 연결된 사각형과 다이아몬드형으로 표현한다.
- 다치 애트리뷰트(multi-valued attribute): 하나의 엔티티 인스턴스에 대해 여러 개의 값을 가질 수 있는 애트리뷰트이다. 이중선으로 둘러싸인 타원으로 표현한다. 예를 들어, 소프트웨어의 '플랫폼' 애트리뷰트는 여러 플랫폼에서 동작할 수 있으므로 다치 애트리뷰트가 된다.
- 합성 애트리뷰트(composite attribute): 두 개 이상의 애트리뷰트로 구성된 애트리뷰트이다. 예를 들어, '주소'는 '번지', '도시' 등의 애트리뷰트로 구성된 합성 애트리뷰트이다.
- 추출 애트리뷰트(derived attribute): 다른 애트리뷰트나 데이터베이스의 정보로부터 유도될 수 있는 애트리뷰트이다. 점선으로 그린 타원형으로 표시한다. 예를 들어, '나이' 애트리뷰트는 '생년월일' 애트리뷰트로부터 추출할 수 있다.
- Is-a 관계 (is-a relationship): 수퍼클래스와 서브클래스 간의 관계를 나타낸다. 예를 들어, '피고용인' 엔티티는 '프로그래머'와 '마케터' 엔티티의 수퍼클래스가 될 수 있다. ISA라는 글자가 들어간 삼각형으로 표시한다.
- 어그리게이션: 한 관계와 관련된 엔티티 집합들을 단일 엔티티 집합으로 간주하는 것이다. 점선 사각형으로 표시한다.
참조
[1]
논문
The Entity-Relationship Model - Toward a Unified View of Data
1976-03-01
[2]
서적
Modelling a Real-World System and Designing a Schema to Represent It
North-Holland
1975
[3]
웹사이트
Lesson 5: Supertypes and Subtypes
https://docs.microso[...]
[4]
서적
Database Systems
Houndmills
2004
[5]
웹사이트
English, Chinese and ER diagrams
http://bit.csc.lsu.e[...]
[6]
웹사이트
The Pangrammaticon: Emotion and Society
http://pangrammatico[...]
2013-01-03
[7]
서적
La methode MERISE: Principes et outils
1983
[8]
서적
Fundamentals of Database Systems
Addison-Wesley
2000
[9]
서적
ER 2004 : 23rd International Conference on Conceptual Modeling, Shanghai, China, November 8-12, 2004
https://books.google[...]
2004-10-27
[10]
웹사이트
A Formal Treatment of UML Class Diagrams as an Efficient Method for Configuration Management 2007
http://publik.tuwien[...]
[11]
웹사이트
James Dullea, Il-Yeol Song, Ioanna Lamprou - An analysis of structural validity in entity-relationship modeling 2002
http://www.ischool.d[...]
2024-03-01
[12]
논문
Reasoning about participation constraints and Chen's constraints
http://crpit.com/con[...]
Australian Computer Society, Inc.
2003
[13]
간행물
BASIC DATA STRUCTURE MODELS EXPLAINED WITH A COMMON EXAMPLE
IEEE Computer Society Publications Office
1976-10-18
[14]
간행물
Introduction to Data Analysis
ICL Training Publication
1978-11-01
[15]
웹사이트
The Role of Intensional and Extensional Interpretation in Semantic Representations
https://www.research[...]
[16]
웹사이트
Data and Reality
http://www.bkent.net[...]
[17]
문서
Data Semantics
[18]
문서
[19]
문서
[20]
문서
[21]
서적
Janus-Faced Probability
Springer
2014
[22]
논문
Suggested research directions for a new frontier: Active conceptual modeling
Springer Berlin / Heidelberg
2006
[23]
논문
Integrating ERD and UML Concepts When Teaching Data Modeling
https://aisel.aisnet[...]
2020
[24]
논문
The power and limits of relational technology in the age of information ecosystems
https://www.deri.ie/[...]
2010
[25]
웹사이트
A call to arms: revisiting database design
http://citeseerx.ist[...]
[26]
논문
Temporal Entity-Relationship models—a survey
1999
[27]
서적
Multidimensional Databases: Problems and Solutions
Idea Group Inc (IGI)
[28]
웹사이트
The Entity Relationship Model: Toward a Unified View of Data
http://citeseerx.ist[...]
[29]
서적
Modelling a Real-World System and Designing a Schema to Represent It
North-Holland
1975
[30]
용어
entity
[31]
용어
relationship
[32]
서적
Database Systems
Palgrave
2004
[33]
웹사이트
ERROL
https://sites.google[...]
[34]
서적
RRA: A Reshaped Relational Algebra
https://books.google[...]
[35]
웹사이트
English, Chinese and ER diagrams
http://bit.csc.lsu.e[...]
[36]
서적
La methode MERISE: Principes et outils
[37]
서적
Fundamentals of Database Systems
Addison-Wesley
[38]
논문
ER 2004 : 23rd International Conference on Conceptual Modeling
https://books.google[...]
2004-11-08
[39]
논문
A Formal Treatment of UML Class Diagrams as an Efficient Method for Configuration Management
http://publik.tuwien[...]
[40]
논문
An analysis of structural validity in entity-relationship modeling
http://www.ischool.d[...]
[41]
논문
Reasoning about participation constraints and Chen's constraints
http://crpit.com/con[...]
Australian Computer Society, Inc.
[42]
웹사이트
IDEF1X
https://web.archive.[...]
2007-06-22
[43]
웹사이트
Data and Reality
http://www.bkent.net[...]
[44]
서적
Data Semantics
[45]
문서
[46]
문서
[47]
서적
[48]
웹사이트
UML as a Data Modeling Notation, Part 2
http://www.tdan.com/[...]
[49]
논문
Suggested research directions for a new frontier: Active conceptual modeling
http://link.springer[...]
Springer Berlin / Heidelberg
[50]
논문
The power and limits of relational technology in the age of information ecosystems
http://www.michaelbr[...]
[51]
논문
A call to arms: revisiting database design
http://www.sigmod.or[...]
SIGMOD Record
2011-11
[52]
논문
Temporal Entity-Relationship models—a survey
http://people.cs.aau[...]
IEEE Transactions on Knowledge and Data Engineering
[53]
서적
Multidimensional Databases: Problems and Solutions
http://torlone.dia.u[...]
Idea Group Inc (IGI)
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com